Use g_signal_connect_object() to prevent premature finalization of the
authorMatthias Clasen <mclasen@redhat.com>
Thu, 28 Oct 2004 16:50:10 +0000 (16:50 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Thu, 28 Oct 2004 16:50:10 +0000 (16:50 +0000)
2004-10-28  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkcombobox.c (gtk_combo_box_start_editing): Use
g_signal_connect_object() to prevent premature finalization
of the cell_editable while the key_press_event signal is
handled.  (#156325, Olivier Andrieu)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcombobox.c

index aa1cc4e8b17e8cb31dae0fbd0d663b0cf0805416..fe230cd79f39a7f979eae3cdb4bc6e81de140495 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2004-10-28  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkcombobox.c (gtk_combo_box_start_editing): Use
+       g_signal_connect_object() to prevent premature finalization
+       of the cell_editable while the key_press_event signal is
+       handled.  (#156325, Olivier Andrieu)
+
        * *: Clean up many sparse warnings.  (#156698, Kjartan Maraas)
        
        * gtk/gtktreeview.c (gtk_tree_view_remove_widget): Disconnect
index aa1cc4e8b17e8cb31dae0fbd0d663b0cf0805416..fe230cd79f39a7f979eae3cdb4bc6e81de140495 100644 (file)
@@ -1,5 +1,10 @@
 2004-10-28  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkcombobox.c (gtk_combo_box_start_editing): Use
+       g_signal_connect_object() to prevent premature finalization
+       of the cell_editable while the key_press_event signal is
+       handled.  (#156325, Olivier Andrieu)
+
        * *: Clean up many sparse warnings.  (#156698, Kjartan Maraas)
        
        * gtk/gtktreeview.c (gtk_tree_view_remove_widget): Disconnect
index aa1cc4e8b17e8cb31dae0fbd0d663b0cf0805416..fe230cd79f39a7f979eae3cdb4bc6e81de140495 100644 (file)
@@ -1,5 +1,10 @@
 2004-10-28  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkcombobox.c (gtk_combo_box_start_editing): Use
+       g_signal_connect_object() to prevent premature finalization
+       of the cell_editable while the key_press_event signal is
+       handled.  (#156325, Olivier Andrieu)
+
        * *: Clean up many sparse warnings.  (#156698, Kjartan Maraas)
        
        * gtk/gtktreeview.c (gtk_tree_view_remove_widget): Disconnect
index aa1cc4e8b17e8cb31dae0fbd0d663b0cf0805416..fe230cd79f39a7f979eae3cdb4bc6e81de140495 100644 (file)
@@ -1,5 +1,10 @@
 2004-10-28  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkcombobox.c (gtk_combo_box_start_editing): Use
+       g_signal_connect_object() to prevent premature finalization
+       of the cell_editable while the key_press_event signal is
+       handled.  (#156325, Olivier Andrieu)
+
        * *: Clean up many sparse warnings.  (#156698, Kjartan Maraas)
        
        * gtk/gtktreeview.c (gtk_tree_view_remove_widget): Disconnect
index 14c5ad47c417a9a293220aed09614597cb357efc..f6dace279f43ef40ffec29fd81edfb6f8f98916a 100644 (file)
@@ -4714,10 +4714,8 @@ gtk_cell_editable_key_press (GtkWidget   *widget,
     }
   else if (event->keyval == GDK_Return)
     {
-      if (GTK_IS_CELL_EDITABLE (combo_box))
-       gtk_cell_editable_editing_done (GTK_CELL_EDITABLE (combo_box));
-      if (GTK_IS_CELL_EDITABLE (combo_box))
-       gtk_cell_editable_remove_widget (GTK_CELL_EDITABLE (combo_box));
+      gtk_cell_editable_editing_done (GTK_CELL_EDITABLE (combo_box));
+      gtk_cell_editable_remove_widget (GTK_CELL_EDITABLE (combo_box));
       
       return TRUE;
     }
@@ -4785,17 +4783,17 @@ gtk_combo_box_start_editing (GtkCellEditable *cell_editable,
 
   if (combo_box->priv->cell_view)
     {
-      g_signal_connect (combo_box->priv->button, "key_press_event",
-                       G_CALLBACK (gtk_cell_editable_key_press), 
-                       cell_editable);  
+      g_signal_connect_object (combo_box->priv->button, "key_press_event",
+                              G_CALLBACK (gtk_cell_editable_key_press), 
+                              cell_editable, 0);  
 
       gtk_widget_grab_focus (combo_box->priv->button);
     }
   else
     {
-      g_signal_connect (GTK_BIN (combo_box)->child, "key_press_event",
-                       G_CALLBACK (gtk_cell_editable_key_press), 
-                       cell_editable);  
+      g_signal_connect_object (GTK_BIN (combo_box)->child, "key_press_event",
+                              G_CALLBACK (gtk_cell_editable_key_press), 
+                              cell_editable, 0);  
 
       gtk_widget_grab_focus (GTK_WIDGET (GTK_BIN (combo_box)->child));
       GTK_WIDGET_UNSET_FLAGS (combo_box->priv->button, GTK_CAN_FOCUS);